#include <iostream>
#include <unordered_set>
#include <vector>
vector<int> a(n);
using namespace std;

int main() {
  int n;
  cin >> n;

  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }

  vector<int> unique_count(n + 1, 0);

  // 与 set 不同，unordered_set
  // 不保证元素的排序，但通常提供更快的查找、插入和删除操作。
  unordered_set<int> seen;

  // 从后向前计算唯一元素的数量
  for (int i = n - 1; i >= 0; i--) {
    unique_count[i] = unique_count[i + 1];
    if (seen.insert(a[i]).second) {
      unique_count[i]++;
    }
  }

  long long ans = 0;
  seen.clear();

  // 从前向后计算唯一对的数量
  for (int i = 0; i < n - 1; i++) {
    if (seen.insert(a[i]).second) {
      ans += unique_count[i + 1];
    }
  }

  cout << ans << endl;

  return 0;
}
